This application relates to the field of data migration, in particular, data migration from a production environment to lower environments. A production environment is mostly used by different entities (organizations, companies, businesses, financial institutions, etc.) for their processing needs using live applications. Lower environments, such as, quality assurance (QA), development, staging, etc., help ensure that the applications are well tested and stable before being migrated to the production environment.
A QA environment is mostly used to test data, hardware and software that closely simulate the production environment. However, in most cases, access to production data in lower environments is limited due to security reasons. A good example is the consumer data for financial transactions (e.g., payment card information), access to which is highly regulated. Payment card industry (PCI) rules and regulations emphasize the policy for privacy and security concerning consumer data. These rules and regulations restrict merchant users from accessing the consumer data and the production infrastructure associated with securing the consumer data for QA purposes. Quality assurance of the financial transaction system is desirable for the seamless operating of commerce. Similar needs for production infrastructure testing exists in other industries such as medical records, criminal records, vehicle driver information, loan applications, stock trading and voter registration, where access to databases containing sensitive information is regulated.
One of the goals for a user performing QA testing is to test the system and environment as much as possible with the least amount of deviations from the final system that is deployed into the production environment. Any deviation from the production environment introduces a proportionally exponential amount of risk associated with the system when introduced in the production environment. For example, merchant users generate customized testing environments to mimic the production systems and databases implemented by a payment system for testing purposes. However, these testing systems deviate from a production system in a variety of known and also unknown ways. For instance, the QA environment may have code introduced at various stages of the system pipeline to emulate interfaces that interact with the payment system. Also, it would be difficult to emulate all the artifacts of the network lag and system architecture of the payment network that are usually not part of any requirements documentation. These deviations increase the risk that when the system is deployed in a production environment that an error or deficiency that was latent due to the deviations introduced by the QA testing environment would manifest itself while the system is in full production and cause significant loss. Another consideration is the cost associated with architecting, designing and maintaining the QA testing environments for the merchant users.
Embodiments of the invention address this and other problems, individually and collectively.